package com.fire.security.mapper;




import com.fire.security.annotation.AutoFill;
import com.fire.security.domain.Device;
import com.fire.security.dto.DeviceStatusCountDto;
import com.fire.security.enumeration.OperationType;

import java.util.List;

public interface DeviceMapper {

    /**
     * <h2>查询所有设备</h2>
     * */
    List<Device> queryAllDevice(Device device);

    /**
     * <h2>根据状态查询设备数量</h2>
     * */
    List<DeviceStatusCountDto> countDeviceByStatus();

    /**
     * <h2>根据状态3查询设备</h2>
     * */
    List<Device> queryDeviceByStatus(Integer status);

    /**
     * <h2>根据id删除设备</h2>
     * */
    int deleteById(String id);

    /**
     * <h2>根据id更新设备</h2>
     * */
    @AutoFill(OperationType.INSERT)
    int insert(Device device);

    /**
     * <h2>根据id查询设备</h2>
     * */
    @AutoFill(OperationType.UPDATE)
    int updateById(Device record);

    /**
     * <h2>根据id修改设备状态</h2>
     * */
    @AutoFill(OperationType.UPDATE)
    int updateStatusById(Device device);

    /**
     * <h2>根据id修改设备维修时间</h2>
     * */
    @AutoFill(OperationType.UPDATE)
    int updateServiceTimeById(Device device);

    /**
     * <h2>连接user、shop、device三张表查询设备信息</h2>
     * */
    List<Device> queryDeviceByUserId(String userId);

}